import request from '../request/request';

/**
 * 文件上传到MinIO
 * @param file 文件对象
 * @returns 返回预签名URL
 */
export const uploadFile = async (file: File) => {
  const formData = new FormData();
  formData.append('file', file);
  
  return await request.post('/ai/minio/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  });
};

/**
 * 批量文件上传到MinIO
 * @param files 文件对象数组
 * @returns 返回成功上传的文件列表，包含URL和文件名称
 */
export const uploadBatchFiles = async (files: File[]) => {
  const formData = new FormData();
  files.forEach(file => {
    formData.append('files', file);
  });
  
  return await request.post('/ai/minio/upload/batch', formData, {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  });
};

/**
 * 根据URL删除文件
 * @param url 文件的URL（可以是预签名URL或完整URL）
 * @returns 删除结果
 */
export const deleteFileByUrl = async (url: string) => {
  return await request.delete('/ai/minio/delete-by-url', {
    params: { url },
  });
};

